<?
/* Se asegura que el archivo es incluido por el index */
	defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );  
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Producto_exe( $this );
		
	class Producto_exe extends Exe
	{
		function Producto_exe( &$oModule )
			{
				$this->Exe( $oModule );
			}
		// MODIFICAR_Producto
		function update()
			{
				// Convierte a variables los datos del Formulario asociado a la accion
				$oForm = $this->oModule->loadClass( 'Producto_frm' );
				extract( $oForm->getFieldArray() );
				// Modifica el Registro Producto
					$this->oDatabase->update("gtProducto",
									"cdProducto", $cdProducto,
									"nVersion", $nVersion,
									"nqReposicion", $nqReposicion,
									"ncTipoProducto", $ncTipoProducto,
									"nAlto", $nAlto,
									"nAncho", $nAncho,
									"nLargo", $nLargo,
									"nPeso", $nPeso,
									"cPalabrasClave", $cPalabrasClave,
									"cImagen", $cImagen,
									"dModificacion", Date("Y-m-d") ,
									"WHERE",
									"ncProducto", $ncProducto );
				// Agrega los Idiomas
					$this->oDatabase->delete("gtProductoIdioma", "ncProducto", $ncProducto );
					$aIdiomas = $oForm->aFields['aIdiomas']->getValue();
					foreach ( $aIdiomas as $ncIdioma ) 
					{
						$this->oDatabase->insert("gtProductoIdioma", "ncProducto", $ncProducto, "ncIdioma", $ncIdioma );
					}
			}
		// AGREGAR_UNA_Producto
		function insert()
			{
				// Convierte a variables los datos del Formulario asociado a la accion
				$oForm = $this->oModule->loadClass( 'Producto_frm' );
				extract( $oForm->getFieldArray() );
				// Agrega Producto					
					$ncProducto = $this->oDatabase->nextKey("gtProducto", "ncProducto" );
					$this->oDatabase->insert("gtProducto",
									"cdProducto", $cdProducto,
									"nVersion", $nVersion,
									"nqReposicion", $nqReposicion,
									"ncTipoProducto", $ncTipoProducto,
									"nAlto", $nAlto,
									"nAncho", $nAncho,
									"nLargo", $nLargo,
									"nPeso", $nPeso,
									"cPalabrasClave", $cPalabrasClave,
									"cImagen", $cImagen,
									"nqStock", 0,
									"dDesde", Date("Y-m-d") ,
									"dModificacion", Date("Y-m-d") ,
									"bBaja", 0,
									"ncProducto", $ncProducto );
				// Agrega los Idiomas
					$aIdiomas = $oForm->aFields['aIdiomas']->getValue();
					foreach ( $aIdiomas as $ncIdioma ) 
					{
						$this->oDatabase->insert("gtProductoIdioma", "ncProducto", $ncProducto, "ncIdioma", $ncIdioma );
					}
				//$oForm->aFields['cImagen']->copy();
				$oForm->reset();
				$this->oModule->setRedirect( MODIFICAR_UN_PRODUCTO, "ncProducto=$ncProducto" );
			}
		// ELIMINAR_UNA_Producto
		function delete()
			{
				$ncProducto = getParam( 'ncProducto' );
				if ( $ncProducto )
				{
					$this->oDatabase->update( "gtProducto", "bBaja", 1, "WHERE", "ncProducto", $ncProducto );
				}
			}
	}
?>